﻿//#include <iostream>
//#include <iomanip> 
//#include <math.h> 
//using namespace std;
//class Equation
//{
//    double _a, _b, _c;
//public:
//    Equation(double a=1.0,double b = 1.0,double c = 0)
//    {
//        _a = a;
//        _b = b;
//        _c = c;
//    }
//    void set(double a, double b, double c)
//    {
//        _a = a;
//        _b = b;
//        _c = c;
//    }
//    void getRoot()
//    {
//        double x1, x2;
//        double d = _b * _b - 4 * _a *_c;
//        if (d > 0)
//        {
//            x1 = (-_b + sqrt(d)) / 2 /_a;
//            x2= (-_b - sqrt(d)) / 2 / _a;
//            cout << "x1=" << fixed << setprecision(2) << x1 << " " << "x2=" << x2 << endl;
//        }
//        else if (d == 0)
//        {
//            x1=x2= (-_b - sqrt(d)) / 2 / _a;
//            cout << "x1=x2=" << fixed << setprecision(2) <<x1<< endl;
//        }
//        else
//        {
//            x1 = -_b / 2 / _a;
//            x2 = sqrt(-d) / 2 / _a;
//            cout << "x1=" << fixed << setprecision(2) <<x1<<"+" << x2 << "i" <<" "<<"x2=" << x1 << "-" <<x2<<"i"<< endl;
//        }
//    }
//
//};
//int main()
//{
//    int t;
//    double a, b, c;
//    cin >> t;
//    Equation equ;
//    for (int i = 0; i < t; i++)
//    {
//        cin >> a >> b >> c;
//        Equation equ(a, b, c);
//        equ.set(a, b, c);
//        equ.getRoot();
//    }
//    return 0;
//}
//
//#include <iostream>
//using namespace std;
//class date
//{
//public:
//	int  _b;
//	date()
//	{
//		_b = 0;
//		cout << "Constructed by default, value = "<<_b << endl;
//	}
//	date(int b)
//	{
//		_b = b;
//		cout << "Constructed using one argument constructor, value = " << _b << endl;
//	}
//	date(const date& r)
//	{
//		_b = r._b;
//		cout << "Constructed using copy constructor, value = " << _b << endl;
//	}
//};
//int main()
//{
//	int t, a, b;
//	cin >> t;
//	for (int i = 0; i < t; i++)
//	{
//		cin >> a;
//		if (a == 0)
//		{
//			date dat;//传参才写（）；
//		}
//		else if (a == 1)
//		{
//			cin>>b;
//			date dat1(b);
//		}
//		else
//		{
//			cin>>b;
//			date dat2(b);
//			date dat3(dat2);
//		}
//	}
//	return 0;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <iostream>
//#include <cstring>
//using namespace std;
//class CTelNumber
//{
//	char* p ;
//	char* p1;
//public:
//	CTelNumber(char *c)
//	{
//		p =new char[strlen(c)+1] ;
//		strcpy(p, c);
//	}
//	CTelNumber(const CTelNumber& r)
//	{
//		int flag = 0;
//		p= new char[strlen(r.p) + 1];
//		strcpy(p, r.p);
//		for (int i = 0; i < strlen(p); i++)
//		{
//			if (p[i] < '0' || p[i] > '9')
//			{
//				flag = 1;
//				break;
//			}
//		}
//		if (flag == 1 || strlen(p) != 7 || p[0] == '1' || p[0] == '9')
//		{
//			
//			cout << "Illegal phone number" << endl;
//		}
//		else {
//			p1 = new char[strlen(r.p) + 2];
//			if (p[0] == '2' || p[0] == '3' || p[0] == '4')
//			{
//				p1[0] = '8';
//			}
//			else
//			{
//				p1[0] = '2';
//			}
//			p1[8] = '\0';
//			for (int i = 0; i < strlen(p) ; i++)
//				{
//					p1[i + 1] = p[i];
//				}
//		}
//	}
//	void print()
//	{
//		if (p1) {//一定要进行p1的判断，否则输不进去
//			for (int i = 0; p1[i] != '\0'; i++)
//			{
//				cout << p1[i];
//			}
//			cout << endl;
//		}
//	}
//	~CTelNumber()
//	{
//		delete[]p;//内存释放
//		if (p1)
//		{
//			delete[]p1;
//		}
//	}
//};
//int main()
//{
////	int t;
////	cin >> t;
////	char c[100];
////	for (int i = 1; i <= t; i++)
////	{
////		cin >> c;
////		CTelNumber num(c);
////		CTelNumber  copy(num);
////		copy.print();
////	}
////	return 0;
////}
//#include <iostream>
//#include <cstring>
//using namespace std;
//class CDate
//{
//private:
//    int year, month, day;
//public:
//    CDate(int y, int m, int d)
//    {
//        year = y; month = m; day = d;
//    }
//    bool isLeapYear()
//    {
//        return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
//    }
//    int getYear()
//    {
//        return year;
//    }
//    int getMonth()
//    {
//        return month;
//    }
//    int getDay()
//    {
//        return day;
//    }
//    int getDayofYear()
//    {
//        int i, sum = day;
//        int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//        if (isLeapYear())
//        {
//            a[2]++;
//        }
//        for (i = 1; i < month; i++)
//        {
//            sum += a[i];
//        }
//        return sum;
//    }
//};
//
//class software
//{
//private:
//    string _name; char _type; char _media;
//public:
//    software(string name, char type, char media)
//    {
//        _name = name; _type = type; _media = media; 
//    }
//    void print()
//    {
//        cout << "name:" << _name << endl;
//        if (_type == 'O')
//            cout << "type:original" << endl;
//        else if (_type == 'B')
//            cout << "type:backup" << endl;
//        else 
//            cout << "type:trial" << endl;
//        if (_media == 'D')
//            cout << "media:optical disk" << endl;
//        else if (_media == 'H')
//            cout << "media:hard disk" << endl;
//        else
//            cout << "media:USB disk" << endl;
//    } 
//    software(const software& r)
//    {
//        _type = 'B'; _media = 'H';
//        _name = r._name;
//    }
//};
//void judgeday( CDate& date, CDate& date1)
//{
//    if (date.getYear() == 0 && date.getMonth() == 0 && date.getDay() == 0)
//    {
//        cout << "this software has unlimited use" << endl;
//    }
//    else if (date.getYear() < 2015 || date.getYear() == 2015 && date.getMonth() < 4)
//    {
//        cout << "this software has expired" << endl;
//    }
//    else {
//        int sum1 = date.getDayofYear() - date1.getDayofYear();
//        for (int j = 2015; j < date.getYear(); j++)
//        {
//            if ((j % 4 == 0 && j % 100 != 0) || j % 400 == 0)
//            {
//                sum1 = sum1 + 366;
//            }
//            else {
//                sum1 = sum1 + 365;
//            }
//        } cout << "this software is going to be expired in " << sum1 << " " << "days" << endl;
//    }
//}
//int main()
//{
//    int t;
//    cin >> t;
//    for (int i = 0; i < t; i++)
//    {
//        string name; char type, media;
//        int year, month, day;
//        cin >> name;
//        cin >> type >> media >> year >> month >> day;
//        CDate date(year, month, day);
//        CDate date1(2015, 4, 7);
//        software ware1(name, type, media);
//        software ware2(ware1);
//        ware1.print();
//       judgeday(date, date1);
//       cout << endl;//空一行必须这么写（cout<<"\n"<<endl(同时空出两行）
//        ware2.print();
//        judgeday(date, date1);
//      cout <<  endl;
//    }
//    return 0;
//}
//
//由于number中使用了CDate，所以要把CDate放在前面
//#include <iostream>
//#include <cstring>
//using namespace std;
//class CDate
//{
//private:
//	int _y, _m, _d;
//public:
//	CDate(int y, int m, int d)
//	{
//		_y = y; _m = m; _d = d;
//	}
//	int getyear()
//	{
//		return _y;
//	}
//	int getmonth()
//	{
//		return _m;
//	}
//	int getday()
//	{
//		return _d;
//	}
//	void print()
//	{
//		cout << "||停机日期=" << _y << "." << _m << "." << _d << endl;
//	}
//};
//class number
//{
//private:
//	char _type;
//	string _num;
//	int _state;
//public:
//	CDate* stopdate = NULL;
//	number(char type, string num, int state)
//	{
//		_type = type; _num = num; _state = state;
//	}
//	number(const number& r)
//	{
//		_type = r._type; _num = r._num; _state = r._state;
//	}
//	
//	void stop(CDate& d)
//	{
//		_state = 3;
//		stopdate = new CDate(d.getyear(), d.getmonth(), d.getday());
//		cout << "Stop the phone " << _num << endl;
//	}
//	void print1()
//	{
//		cout << "Construct a new phone " << _num << endl;
//	}
//	void print2(){
//		if (_type == 'A')
//			cout << "类型=机构||号码=" << _num;
//		else if (_type == 'B')
//			cout << "类型=企业||号码=" << _num;
//		else
//			cout << "类型=个人||号码=" << _num;
//	}
//	void print3(){
//		if (_state == 1)
//			cout << "||State=在用" ;
//		else if (_state == 2)
//			cout << "||State=未用" ;
//		else
//			cout << "||State=停用" ;
//	}
//	~number()
//	{
//		delete stopdate;
//	}
//};
//int main()
//{
//	int t;
//	cin >> t;
//	for (int i = 0; i < t; i++)
//	{
//		char type;
//		string num;
//		int state, year, month,day;
//		cin >> type >> num >> state >> year >> month >> day;
//		number num_(type, num, state);
//		number num1(num_);
//		num_.print1();
//		num_.print2();
//		num_.print3();
//		cout << endl;
//		cout << "Construct a copy of phone " << num <<endl;
//		cout << "类型=备份||号码=" << num << "X";
//		num_.print3();
//		cout << endl;
//		CDate stopdate(year, month, day);
//		num_.stop(stopdate);
//		num_.print2();
//		num_.print3();
//		stopdate.print();
//		cout << "----" << endl;
//	}
//	return 0;
//}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
class CTelNumber
{
	char* p ;
	char* p1;
public:
	CTelNumber(char *c)
	{
		p =new char[strlen(c)+1] ;
		strcpy(p, c);
	}
	CTelNumber(const CTelNumber& r)
	{
		int flag = 0;
		p= new char[strlen(r.p) + 1];
		strcpy(p, r.p);
		for (int i = 0; i < strlen(p); i++)
		{
			if (p[i] < '0' || p[i] > '9')
			{
				flag = 1;
				break;
			}
		}
		if (flag == 1 || strlen(p) != 7 || p[0] == '1' || p[0] == '9')
		{
			
			cout << "Illegal phone number" << endl;
			p1 = NULL;//初始化否则运行异常
		}
		else {
			p1 = new char[strlen(r.p) + 2];
			if (p[0] == '2' || p[0] == '3' || p[0] == '4')
			{
				p1[0] = '8';
			}
			else
			{
				p1[0] = '2';
			}
			p1[strlen(r.p) + 1] = '\0';
			for (int i = 0; i < strlen(p) ; i++)
				{
					p1[i + 1] = p[i];
				}
		}
	}
	void print()
	{//p1不是空才打印
		if (p1) {
			for (int i = 0; p1[i] != '\0'; i++)
			{
				cout << p1[i];
			}
			cout << endl;
		}
	}
	~CTelNumber()
	{
		delete[]p;
		if (p1)
		{
			delete[]p1;
		}
	}
};
int main()
{
	int t;
	cin >> t;
	char c[100];
	for (int i = 1; i <= t; i++)
	{
		cin >> c;
		CTelNumber num(c);
		CTelNumber  copy(num);
		copy.print();
	}
	return 0;
}